home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_08 / saks / genq3.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-12  |  707 b   |  42 lines

  1. Listing 1 - class definition for a generic queue using void * elements
  2.  
  3. //
  4. // genq3.h - generic queue using void *
  5. // elements and an iteration function
  6. //
  7.  
  8. #include <iostream.h>
  9.  
  10. class genq
  11.     {
  12. public:
  13.     genq();
  14.     ~genq();
  15.     void append(void *e);
  16.     void apply(void f(void *p));
  17.     void clear();
  18.     int remove(void *&e);
  19. private:
  20.     struct cell
  21.         {
  22.         cell(void *e, cell *p);
  23.         cell *next;
  24.         void *element;
  25.         };
  26.     cell *first, *last;
  27.     };
  28.  
  29. inline genq::cell::cell(void *e, cell *p)
  30.     : element(e), next(p)
  31.     {
  32.     }
  33.  
  34. inline genq::genq() : first(0), last(0)
  35.     {
  36.     }
  37.  
  38. inline genq::~genq()
  39.     {
  40.     clear();
  41.     }
  42.